package com.company.project.wechat.officialAccounts.service;

import com.company.project.wechat.officialAccounts.entity.UpdateFile;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.HashMap;

/**
 * 微信开放接口相关
 * @author ZYF
 * @date 2021/5/18 11:03
 */
public interface WxOfficialAccountsService {


    /**
     *  微信服务器验证
     * @param signature 微信加密签名
     * @param timestamp 时间戳
     * @param nonce 随机数
     * @param echostr 随机字符串
     * @return
     */
    String getValidateCode(String signature, String timestamp, String nonce, String echostr);

    /**
     * 微信公众号获取AccountToken
     * @return
     */
    String getAccountToken();

    /**
     * 微信公众号创建临时二维码
     * @return map
     *  ticket 为可以跟微信公众号换取二维码图片的凭证
     *  orCodeUrl 可以根据这个url自行生成一个二维码
     */
    HashMap<String,String> getTicket();

    /**
     * 微信公众号推送消息
     * @param request
     * @param response
     * @throws Exception
     */
    void acceptMessage(HttpServletRequest request, HttpServletResponse response) throws Exception;

    /**
     * 微信公众号上传临时素材接口
     *
     * 图片（image）: 10M，支持PNG\JPEG\JPG\GIF格式
     *
     * 语音（voice）：2M，播放长度不超过60s，支持AMR\MP3格式
     *
     * 视频（video）：10MB，支持MP4格式
     *
     * 缩略图（thumb）：64KB，支持JPG格式
     * @param updateFile
     */
    String  upload(UpdateFile updateFile);

    /**
     * 微信公众号自定义菜单
     * @param menuJson
     * @return
     */
    Boolean setWxMenu(String menuJson);



}
